﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Collections.Generic;

namespace Sinacor.Tools.Web.ConstantesErro
{
    public partial class frmMensagem : BasePage
    {

        private Entidade.Mensagem mensagemGuardada;
        private Entidade.Mensagem entidade;
        #region Métodos

        protected override void preencherGrid(string sortExpression)
        {
            Negocio.Mensagem mensagem = new Negocio.Mensagem();
            mensagemGuardada = (Entidade.Mensagem) this.preencherEntidade(sortExpression).Clone();
            ViewState["consulta"] = mensagemGuardada;
            this.grdTipoMensagem.DataSource = mensagem.consultar((Entidade.Mensagem)mensagemGuardada.Clone());
            this.grdTipoMensagem.DataBind();
        }

        protected void preencherGrid(string sortExpression, bool usarMensagemGuardada)
        {
            if (usarMensagemGuardada)
            {
                Negocio.Mensagem mensagem = new Negocio.Mensagem();
                this.grdTipoMensagem.DataSource = mensagem.consultar(mensagemGuardada);
                this.grdTipoMensagem.DataBind();
            }
            else
            {
                preencherGrid(sortExpression);
            }
        }

        protected override void preencherGrid()
        {
            this.preencherGrid(string.Empty);
        }

        protected void preencherDropStatusTraducao()
        {
            Entidade.StatusTraducao statusTraducao = new Sinacor.Tools.Entidade.StatusTraducao();
            Negocio.StatusTraducao nStatusTraducao = new Sinacor.Tools.Negocio.StatusTraducao();
            this.ddlStatusTraducao.DataTextField = "Descricao";
            this.ddlStatusTraducao.DataValueField = "Id";
            this.ddlStatusTraducao.DataSource = nStatusTraducao.consultar(statusTraducao);
            this.ddlStatusTraducao.DataBind();
            this.ddlStatusTraducao.Items.Insert(0, new ListItem(string.Empty, string.Empty));

        }

        protected void preencherDrops()
        {
            this.preencherDropStatusMensagem();
            this.preencherDropTipoMensagem();
            this.preencherDropModulos();
            this.preencherDropSubModulos();
            this.preencherDropStatusTraducao();
            this.preencherDropIdioma();           
        }

        protected void preencherDropIdioma()
        {
            Entidade.Idioma idioma = new Sinacor.Tools.Entidade.Idioma();
            Negocio.Idioma nIdioma = new Sinacor.Tools.Negocio.Idioma();
            this.ddlIdioma.DataTextField = "Descricao";
            this.ddlIdioma.DataValueField = "Id";
            this.ddlIdioma.DataSource = nIdioma.consultar(idioma);
            this.ddlIdioma.DataBind();
            this.ddlIdioma.Items.Insert(0, new ListItem(string.Empty, string.Empty));
        }
        
        protected void preencherDropStatusMensagem()
        {
            Entidade.StatusMensagem entidade = new Sinacor.Tools.Entidade.StatusMensagem();
            Negocio.StatusMensagem statusMensagem = new Negocio.StatusMensagem();
            this.ddlStatusMensagem.DataTextField = "Descricao";
            this.ddlStatusMensagem.DataValueField = "Id";

            this.ddlStatusMensagem.DataSource = statusMensagem.consultar(entidade);
            this.ddlStatusMensagem.DataBind();
            this.ddlStatusMensagem.Items.Insert(0, new ListItem(string.Empty, string.Empty));
        }

        protected void preencherDropTipoMensagem()
        {
            Entidade.TipoMensagem entidade = new Sinacor.Tools.Entidade.TipoMensagem();
            Negocio.TipoMensagem tipoMensagem = new Negocio.TipoMensagem();
            this.ddlTipoMensagem.DataTextField = "Descricao";
            this.ddlTipoMensagem.DataValueField = "Id";
            Session["TipoMensagem"] = tipoMensagem.consultar(entidade);
            this.ddlTipoMensagem.DataSource = (List<Sinacor.Tools.Entidade.TipoMensagem>)Session["TipoMensagem"];
            this.ddlTipoMensagem.DataBind();
            this.ddlTipoMensagem.Items.Insert(0, new ListItem(string.Empty, string.Empty));
        }

        private Entidade.Mensagem preencherEntidade(string sortExpression)
        {
            Entidade.Mensagem mensagem = new Entidade.Mensagem();
            if (!string.IsNullOrEmpty(sortExpression))
                Entidade.Mensagem.PropriedadeSort = sortExpression;

            //incluido - esertorio - 200809191917
            if (this.txtCodigo.Text.Trim() != string.Empty && this.hdnOperacao.Value.ToLower() != "i")
            {
                mensagem.Id = Convert.ToInt32(this.txtCodigo.Text.Trim());
            }

            if (this.hdnCodigo.Value.Trim() != string.Empty)
            {
                mensagem.Id = Convert.ToInt32(this.hdnCodigo.Value);
            }

            if (this.ddlModulo.SelectedValue != string.Empty)
            {
                mensagem.Modulo = this.ddlModulo.SelectedValue;
            }

            //if (this.txtSubmodulo.Text.Trim() != string.Empty) //exc - esertorio - 200810061308
            //{
            //    mensagem.Submodulo = this.txtSubmodulo.Text.Trim();
            //}

            //if (this.ddlSubModulo.SelectedValue != string.Empty) //inc - esertorio - 200810061308
            //{
            //    mensagem.Submodulo = this.ddlSubModulo.SelectedValue;
            //}

            //if (this.txtSubmodulo2.Text != string.Empty) 
            //{
            //    mensagem.Submodulo = this.txtSubmodulo2.Text;
            //}

            if (this.ddlSubModulo.SelectedValue != string.Empty) 
            {
                mensagem.Submodulo = this.ddlSubModulo.SelectedValue;
            }
            else if (this.txtResourceKey.Text.Trim() != string.Empty)
            {
                mensagem.Submodulo = this.hdnResourKeyCompleta.Value.Trim().Split('.')[1];
            }





            if (this.ddlStatusMensagem.SelectedValue != string.Empty)
            {
                mensagem.StatusMensagem.Id = Convert.ToByte(this.ddlStatusMensagem.SelectedValue);
            }

            if (this.ddlTipoMensagem.SelectedValue != string.Empty)
            {
                mensagem.TipoMensagem.Id = Convert.ToByte(this.ddlTipoMensagem.SelectedValue);
            }

            //inc - esertorio - 200810091556
            if (this.txtResourceKey.Text.Trim() != string.Empty)
            {
                mensagem.ResourceKey = this.txtResourceKey.Text.Trim();
            }

            if (this.hdnResourKeyCompleta.Value.Trim() != string.Empty)
            {
                mensagem.ResourceKey = this.hdnResourKeyCompleta.Value.Trim();
            }

            if (this.txtProposito.Text.Trim() != string.Empty)
            {
                mensagem.Proposito = this.txtProposito.Text.Trim();
            }

            if (this.hdnCodigoTextoMensagem.Value.Trim() != string.Empty)
            {
                mensagem.Traducao.IdMensagem = Convert.ToInt32(this.hdnCodigoTextoMensagem.Value);
            }

            if (this.hdnTipoFiltroMensagem.Value.Trim() != string.Empty)
            {
                if (this.hdnTipoFiltroMensagem.Value.ToString() == Sinacor.Tools.Entidade.Enum.TipoFiltroMensagem.Mensagem.ToString())
                    mensagem.TipoFiltroMensagem = Sinacor.Tools.Entidade.Enum.TipoFiltroMensagem.Mensagem;

                else if (this.hdnTipoFiltroMensagem.Value.ToString() == Sinacor.Tools.Entidade.Enum.TipoFiltroMensagem.ResouceKey.ToString())
                    mensagem.TipoFiltroMensagem = Sinacor.Tools.Entidade.Enum.TipoFiltroMensagem.ResouceKey;
                else
                    mensagem.TipoFiltroMensagem = Sinacor.Tools.Entidade.Enum.TipoFiltroMensagem.ResouceKey;
            }
            else
            {
                mensagem.TipoFiltroMensagem = Sinacor.Tools.Entidade.Enum.TipoFiltroMensagem.ResouceKey;
            }


            if (this.txtMensagem.Text.Trim() != string.Empty)
            {
                mensagem.Traducao.MensagemTraduzida = this.txtMensagem.Text.Trim();
            }

            if (this.ddlIdioma.SelectedValue != string.Empty)
            {
                mensagem.Traducao.Idioma.Id = Convert.ToByte(this.ddlIdioma.SelectedValue);
            }

            if (this.ddlStatusTraducao.SelectedValue != string.Empty)
            {
                mensagem.Traducao.StatusTraducao.Id = Convert.ToByte(this.ddlStatusTraducao.SelectedValue);
            }

            //if (chkExceptionMessage.Checked)
            //   mensagem.IDExceptionMessage = 4;
            

            return mensagem;
        }

        protected void limparCampos()
        {
            this.txtCodigo.Text = string.Empty;
            this.hdnCodigo.Value = string.Empty;
            this.ddlStatusMensagem.SelectedValue = string.Empty;
            this.ddlModulo.SelectedValue = string.Empty;
            //this.txtSubmodulo.Text = string.Empty; //exc - esertorio - 200810031310
            this.ddlSubModulo.SelectedValue = string.Empty; //inc - esertorio - 200810031310
            this.ddlTipoMensagem.SelectedValue = string.Empty;
            this.hdnResourKeyCompleta.Value = string.Empty;
            this.txtResourceKey.Text = string.Empty;
            this.txtPrefixoResourceKey.Text = string.Empty;
            this.txtProposito.Text = string.Empty;
            this.txtMensagem.Text = string.Empty;
            this.ddlStatusTraducao.SelectedValue = string.Empty;
            this.ddlIdioma.SelectedValue = string.Empty;
            this.ddlStatusTraducao.SelectedValue = string.Empty;
            this.hdnOperacao.Value = "i";
            this.grdTipoMensagem.DataSource = null;
            this.grdTipoMensagem.DataBind();

            this.txtCodigo2.Text = string.Empty;
            this.hdnCodigo2.Value = string.Empty;
            this.txtResourceKey2.Text = string.Empty;
            this.txtPrefixoResourceKey2.Text = string.Empty;
            this.txtProposito2.Text = string.Empty;
            this.txtMensagem2.Text = string.Empty;
            this.txtSubmodulo2.Text = string.Empty;
        }

        protected void limparCamposParaAtualizacao()
        {
            this.txtCodigo.Text = string.Empty;
            this.hdnCodigo.Value = string.Empty;
            this.hdnResourKeyCompleta.Value = string.Empty;
            this.txtResourceKey.Text = string.Empty;
            this.txtPrefixoResourceKey.Text = string.Empty;
            this.txtProposito.Text = string.Empty;
            this.txtMensagem.Text = string.Empty;
        }


        private Entidade.Mensagem preencherEntidade()
        {
            return this.preencherEntidade(string.Empty);
        }

        private void preencherDropModulos()
        {
            this.ddlModulo.DataTextField = "Descricao";
            this.ddlModulo.DataValueField = "Id";

            Negocio.Modulo modulo = new Sinacor.Tools.Negocio.Modulo();
            this.ddlModulo.DataSource = modulo.consultar();
            this.ddlModulo.DataBind();
            this.ddlModulo.Items.Insert(0, new ListItem(string.Empty, string.Empty));
        }

        //inc - esertorio - 200810031311
        private void preencherDropSubModulos()
        {
            this.ddlSubModulo.DataTextField = "Descricao";
            this.ddlSubModulo.DataValueField = "Id";

            Negocio.SubModulo subModulo = new Sinacor.Tools.Negocio.SubModulo();
            this.ddlSubModulo.DataSource = subModulo.consultar();
            this.ddlSubModulo.DataBind();
            this.ddlSubModulo.Items.Insert(0, new ListItem(string.Empty, string.Empty));
        }

        //inc - esertorio - 200810071201
        private void preencherDropSubModulos(string IdSubModulo)
        {
            this.ddlSubModulo.DataTextField = "Descricao";
            this.ddlSubModulo.DataValueField = "Id";

            Negocio.SubModulo negSubModulo = new Sinacor.Tools.Negocio.SubModulo();
            Entidade.SubModulo entSubModulo = new Sinacor.Tools.Entidade.SubModulo();
            entSubModulo.Modulo = IdSubModulo;
            this.ddlSubModulo.DataSource = negSubModulo.consultar(entSubModulo);
            this.ddlSubModulo.DataBind();
            this.ddlSubModulo.Items.Insert(0, new ListItem(string.Empty, string.Empty));
        }
        private void VerificaExceptionMessage(DropDownList tipoMensagem)
        {
            //if (tipoMensagem.SelectedItem.Text.Trim().ToUpper() == "MESSAGE")
            //    chkExceptionMessage.Attributes["disabled"] = ""; 
            //else
            //{
            //    chkExceptionMessage.Checked = false;
            //    chkExceptionMessage.Attributes["disabled"] = "disabled"; 
            //}
        }
        #endregion
                
        #region Eventos

        protected void btnSalvar_Click(object sender, EventArgs e)
        {
            try
            {
                entidade = new Sinacor.Tools.Entidade.Mensagem();
                Negocio.Mensagem nMensagem = new Negocio.Mensagem();
                entidade.Traducao = new Entidade.TraducaoMensagem();
                entidade.Traducao.Idioma = new Entidade.Idioma();
                entidade = this.preencherEntidade();
                byte codigoIdioma = Negocio.Idioma.buscarIdIdiomaPadrao();
                entidade.Traducao.Idioma.Id = codigoIdioma;
                entidade.UsuarioLogado = Session["user"].ToString();
                entidade.Traducao.UsuarioLogado = Session["user"].ToString();
                nMensagem.salvar(entidade);
				this.Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "MensagemException", "MensagemException(" + entidade.Id + "," + entidade.Traducao.IdMensagem + ")", true);
                Session["Mensagem"] = entidade;
                this.limparCamposParaAtualizacao();
                this.preencherGrid();
                this.ddlSubModulo.SelectedValue = entidade.Submodulo;
                DesabilitaCampos();
            }
            catch (Exception ex)
            {
                this.apresentarMensagem(ex.Message);
            }
        }

        protected void btnPesquisar_Click(object sender, EventArgs e)
        {
            try
            {
                this.preencherGrid();
                this.hdnOperacao.Value = "i";
            }
            catch (Exception ex)
            {
                this.apresentarMensagem(ex.Message);
            }
        }

        protected void btnCancelar_Click(object sender, EventArgs e)
        {
            //this.Page.Server.Transfer("frmConsultaMensagem.aspx");
        }


        protected void grdTipoMensagem_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            try
            {
                //paginar(sender, e);
                ((GridView)sender).PageIndex = e.NewPageIndex;
                this.mensagemGuardada = (Entidade.Mensagem)ViewState["consulta"];
                this.preencherGrid(Entidade.Mensagem.PropriedadeSort, true);
                btnSalvar.Enabled = true; 
            }
            catch (Exception ex)
            {
                this.apresentarMensagem(ex.Message);
            }

        }

        //alterado - esertorio - 200809261216
        protected override void Page_Load(object sender, EventArgs e)
        {
            try
            {
                base.Page_Load(sender, e);

                if (!this.Page.IsPostBack)
                {
                    this.preencherDrops();
                    this.VerificaParametrosEntrada(); //incluido - esertorio - 200809242006

                    if (ddlTipoMensagem.Attributes.Count == 0)
                        ddlTipoMensagem.Attributes.Add("onchange", "StatusExceptionMessage()");

                    if (ddlSubModulo.Attributes.Count == 0)
                        ddlSubModulo.Attributes.Add("onchange", "ValorSubModulo()");                        
                    

                    if (Session["Mensagem"] == null)
                    {
                        addScripts();
                        //preencherGrid();  //emorais

                        //txtMensagem.ReadOnly = true;
                        
                        btnCancelar.CausesValidation = false;
                        btnCancelar.UseSubmitBehavior = false;

                        btnCancelar.Enabled = false;
                        btnSalvar.Enabled = true; // alterado: emorais

                        this.Page.ClientScript.RegisterStartupScript(this.GetType(), "inicial", "javascript:resetarForm();", true);
                        //btnSalvar.Attributes.Add("onclick", "if (! validaCamposObrigatorios()) {return false;} setarResource(); ");
                        btnCancelar.Attributes.Add("onclick", "resetarForm();acaoSalvar(true);");
                    }
                    else
                    {
                        //btnPesquisar.Enabled = false;
                        //grdTipoMensagem.DataSource = null;
                        //grdTipoMensagem.DataBind(); 

                        entidade = (Entidade.Mensagem)Session["Mensagem"];

                        if (entidade.Id.HasValue)
                            hdnCodigo.Value = entidade.Id.Value.ToString();

                        if (entidade.Traducao != null)
                        {
                            if (entidade.Traducao.IdMensagem.HasValue)
                            {
                                txtCodigo.Text = entidade.Traducao.IdMensagem.Value.ToString();
                                hdnCodigoTextoMensagem.Value = entidade.Traducao.IdMensagem.Value.ToString();
                            }
                        }
                        hdnTipoFiltroMensagem.Value = entidade.TipoFiltroMensagem.ToString();

                        switch (entidade.TipoFiltroMensagem)
                        {
                            case Sinacor.Tools.Entidade.Enum.TipoFiltroMensagem.Mensagem:

                                txtMensagem.Text = entidade.Traducao.MensagemTraduzida;
                                txtResourceKey.Text = entidade.ResourceKey;


                                //Alterar Mensagem
                                if (entidade.Id.HasValue)
                                {
                                    addMensagemScripts();
                                    btnSalvar.Enabled = true;
                                    //btnSalvar.Attributes.Add("onclick", "if (! validaCamposObrigatoriosMensagem()) {return false;} ");
                                }
                                //Incluir Mensagem
                                else
                                {
                                    txtCodigo.ReadOnly = true;
                                    //Início teste
                                    addScripts();
                                    //preencherGrid();
                                    //btnSalvar.Attributes.Add("onclick", "if (! validaCamposObrigatorios()) {return false;} setarResource(); ");
                                    //Fim teste

                                    //txtMensagem.ReadOnly = true;
                                    btnCancelar.CausesValidation = true;
                                    btnSalvar.Enabled = true;
                                }
                                break;
                            case Sinacor.Tools.Entidade.Enum.TipoFiltroMensagem.ResouceKey:

                                txtMensagem.Text = entidade.Traducao.MensagemTraduzida;
                                txtResourceKey.Text = entidade.ResourceKey;

                                txtCodigo.ReadOnly = true;
                                //Início teste
                                addScripts();
                                //preencherGrid();
                                //btnSalvar.Attributes.Add("onclick", "if (! validaCamposObrigatorios()) {return false;} setarResource(); ");
                                //Fim teste

                                //txtMensagem.ReadOnly = true;
                                btnCancelar.CausesValidation = true;
                                btnSalvar.Enabled = true;

                                //Alterar Mensagem
                                if (entidade.Id.HasValue)
                                {

                                    txtCodigo.Text = entidade.Id.Value.ToString();
                                    ddlTipoMensagem.SelectedValue = entidade.TipoMensagem.Id.Value.ToString();

                                    //if (entidade.TipoMensagem.Descricao.Trim().ToUpper() == "MESSAGE")
                                    //    chkExceptionMessage.Attributes["disabled"] =  ""; 
                                        //chkExceptionMessage.Enabled = true;
                                    
                                    //hdnTipoFiltroMensagem.Value = ddlTipoMensagem.SelectedValue;

                                    ddlStatusTraducao.SelectedValue = entidade.StatusTraducao.Id.Value.ToString();
                                    ddlStatusMensagem.SelectedValue = entidade.StatusMensagem.Id.Value.ToString();

                                    ddlModulo.SelectedValue = entidade.Modulo;
                                    ddlSubModulo.SelectedValue = entidade.Submodulo;

                                    txtSubmodulo2.Text = entidade.Submodulo;

                                    txtPrefixoResourceKey.Text = entidade.ResourceKey;
                                    hdnResourKeyCompleta.Value = txtPrefixoResourceKey.Text;

                                    txtResourceKey.Text = txtPrefixoResourceKey.Text.Split('.')[3].ToString();

                                    txtProposito.Text = entidade.Proposito;
                                    txtMensagem.Text = entidade.Traducao.MensagemTraduzida;
                                    hdnCodigoTextoMensagem.Value = entidade.Traducao.IdMensagem.Value.ToString();

                                    txtCodigo.Text = entidade.Id.Value.ToString();
                                    hdnCodigo.Value = entidade.Id.Value.ToString();
                                }

                                break;
                            default:
                                break;
                        }

                        ddlIdioma.SelectedValue = entidade.Traducao.Idioma.Id.Value.ToString();
                    }
                }
                else
                {
                    Session["Mensagem"] = null;
                    Session["mensagemId"] = null;

                    Session["mensagemIndex"] = null;
                    Session["ResourceKeyIndex"] = null;
                }
            }
            catch (Exception ex)
            {
                this.apresentarMensagem(ex.Message);
            }
        }

        private void DesabilitaCampos()
        {
            this.txtCodigo.Enabled = false;
        }

        private void HabilitaCampos()
        {
            this.txtCodigo.Enabled = true;
        }

        private void addScripts()
        {
            this.txtResourceKey.Attributes.Add("onblur", "javascript:setarResource();");
            this.btnPesquisar.Attributes.Add("onclick", "document.getElementById('hdnOperacao').value = 'c';"); //força consulta - esertorio - 200809291159
            this.lblIdioma.Style.Add("display", "none");
            this.ddlIdioma.Style.Add("display", "none");
            this.lblStatusTraducao.Style.Add("display", "none");
            this.ddlStatusTraducao.Style.Add("display", "none");
        }

        private void addMensagemScripts()
        {
            txtCodigo.ReadOnly = true;
            lblIdioma.Enabled  = false;
            ddlStatusMensagem.Enabled = false;

            ddlTipoMensagem.Enabled = false;
            ddlStatusTraducao.Enabled = false;
            ddlModulo.Enabled  = false;

            ddlSubModulo.Enabled = false;
            ddlIdioma.Enabled = false;
            txtResourceKey.Enabled = false;

            txtProposito.Enabled = false;
            btnPesquisar.Enabled = false;

            this.lblIdioma.Style.Add("display", "none");
            this.ddlIdioma.Style.Add("display", "none");
            this.lblStatusTraducao.Style.Add("display", "none");
            this.ddlStatusTraducao.Style.Add("display", "none");
        }


        protected void grdTipoMensagem_Sorting(object sender, GridViewSortEventArgs e)
        {
            try
            {
                this.preencherGrid(e.SortExpression);
            }
            catch (Exception ex)
            {
                this.apresentarMensagem(ex.Message);
            }
        }

        protected void Deletar_Click(object sender, ImageClickEventArgs e)
        {
            Negocio.Mensagem nMensagem = new Negocio.Mensagem();
            try
            {
                nMensagem.deletar(this.preencherEntidade());
                limparCamposParaAtualizacao();
                this.preencherGrid();
            }
            catch (Exception ex)
            {
                this.apresentarMensagem(ex.Message);
            }
        }

        protected new void setDefaultGridStyle(GridViewRowEventArgs e, string defaultStyle)
        {
            e.Row.CssClass = defaultStyle.ToUpper();
            e.Row.Attributes.Add("onmouseover", "this.className = 'HOVER'; setViewerItem(this, true);this.style.cursor='hand';");
            e.Row.Attributes.Add("onmouseout", "this.className = '" + defaultStyle.ToUpper() + "'; setViewerItem(this, false);this.style.cursor='';");
            e.Row.Attributes.Add("onclick", "javascript:setUpdateItem(this);");
            e.Row.Attributes.Add("ondblclick", "javascript:doisCliques(this);");
        }
        
        protected void grdTipoMensagem_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                this.setDefaultGridStyle(e, string.Empty);
                addToolTip(e);
            }
            setGridCellStyle(e.Row, false);
        }

        protected void addToolTip(GridViewRowEventArgs e)
        {
            /*
                 0-Id
                 1-Modulo
                 2-Submodulo
                 3-ResourceKey
                 4-DescricaoMensagem
                 5-Proposito
                 6-DescricaoStatus
                 7-DescricaoTipo
                 8-botãoDeletar
                 9-CodigoStatus
                10-CodigoTipo
                11-CodigoStatusTraducao
                12-CodigoIdioma
            */
            // 3-ResourceKey
            e.Row.Cells[3].Text = e.Row.Cells[3].Text.Length > 50 ? e.Row.Cells[3].Text.Substring(0, 50) : e.Row.Cells[3].Text; //alterado tamanho de 20 para 50 - esertorio - 200809301139
            // 4-DescricaoMensagem
            e.Row.Cells[4].Text = e.Row.Cells[4].Text.Length > 50 ? e.Row.Cells[4].Text.Substring(0, 50) : e.Row.Cells[4].Text; //alterado tamanho de 20 para 50 - esertorio - 200809301139
            // 5-Proposito
            e.Row.Cells[5].Text = e.Row.Cells[5].Text.Length > 20 ? e.Row.Cells[5].Text.Substring(0, 20) : e.Row.Cells[5].Text;
        }

        //incluido - esertorio - 200809242006 - 200809261214
        private void VerificaParametrosEntrada()
        {
            string idMensagem = Request.QueryString.Get("idMensagem");
            if (!String.IsNullOrEmpty(idMensagem))
            {
                this.txtCodigo.Text = idMensagem;
                this.hdnOperacao.Value = "c"; //força operação de consulta
            }

            string filtrarTipoMensagem = Request.QueryString.Get("FiltrarTipoMensagem");
            if (
                !String.IsNullOrEmpty(filtrarTipoMensagem)
                &&
                Boolean.Parse(filtrarTipoMensagem)
                )
            {
                string tipoMensagem = System.Configuration.ConfigurationManager.AppSettings["FiltroTipoMensagem"];
                if (!String.IsNullOrEmpty(tipoMensagem))
                {
                    this.ddlTipoMensagem.SelectedValue = tipoMensagem;
                }
            }
        }

        //incluido - esertorio - 200810071157
        protected void ddlModulo_SelectedIndexChanged(object sender, EventArgs e)
        {
            preencherDropSubModulos(this.ddlModulo.SelectedValue);
        }

        protected void btnNovo_Click(object sender, EventArgs e)
        {
            Session["Mensagem"] = null;
            Session["mensagemId"] = null;

            Session["mensagemIndex"] = null;
            Session["ResourceKeyIndex"] = null;

            //Page.Server.Transfer("frmConsultaMensagem.aspx");

            limparCampos();
            HabilitaCampos();
        }

        protected void ddlTipoMensagem_SelectedIndexChanged(object sender, EventArgs e)
        {
            VerificaExceptionMessage((DropDownList)sender);
        }
        #endregion
    }
}
